package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.GradeBean;
import com.project.bean.RoleBean;

import java.util.List;
import java.util.Set;

/*角色业务接口*/
public interface IRoleService {
    /**
     * @param pageNO 页码
     * @return 角色分页对象
     */
    IPage<RoleBean> findByItem(Integer pageNO);

    /**
     * 查询所有角色
     * @return 角色集合
     */
    List<RoleBean> findAll();

    /**
     * 根据角色id 查看角色信息
     * 同时查询该角色拥有的权限集合
     *
     * @param roleId 角色编号
     * @return 角色对象（角色编号、角色名称、角色拥有权限集合）
     */
    RoleBean findById(Integer roleId);

    /**
     * 删除该角色拥有的权限列表    权限/角色中间表
     * 再删除该角色拥有的用户列表，用户/角色中间表
     * 最后在删除角色，
     *
     * @param roleId 用户编号
     */
    void del(Integer roleId);

    /**修改
     * 通过角色修改权限方法
     * 删除角色权限（修改角色\权限中间表）
     *再添加新权限
     * @param roleId  角色编号
     * @param gradeIdArray 新权限编号数组
     */
    void update(Integer roleId, Integer[] gradeIdArray);

    /**
     * 添加角色
     * 添加角色和权限的中间表
     *
     * @param role         角色对象
     * @param gradeIdArray 权限id数组
     */
    void add(RoleBean role, Integer[] gradeIdArray);
}
